Adding Callback Functions to an Application

An application can register callback functions with the capture window so that it notifies the application in the following circumstances:

    The status changes

    Errors occur

    Video frame and audio buffers become available

    The application should yield during streaming capture

 

The following example creates a capture window and registers status, error, video stream, and frame callback functions in the message-processing loop of an application. It also includes a sample statement for disabling a callback function. Subsequent examples show simple status, error, and frame callback functions.

case WM_CREATE:

    char    achDeviceName[80] ;

    char    achDeviceVersion[100] ;

    char    achBuffer[100] ;

    WORD    wDriverCount = 0 ;

    WORD    wIndex ;

    WORD    wError ;

    HMENU   hMenu ;

 

    // Create a capture window using the capCreateCaptureWindow3407QE5 macro.

    ghWndCap = capCreateCaptureWindow((LPSTR)"Capture Window",

        WS_CHILD | WS_VISIBLE, 0, 0, 160, 120, (HWND) hWnd, (int) 0);

 

    // Register the error callback function using the

    // capSetCallbackOnError1XWSSEB macro.

    capSetCallbackOnError(ghWndCap, fpErrorCallback);

 

    // Register the status callback function using the

    // capSetCallbackOnStatus4TX4M macro.

    capSetCallbackOnStatus(ghWndCap, fpStatusCallback);

 

    // Register the video-stream callback function using the

    // capSetCallbackOnVideoStreamUNXTI macro.

    capSetCallbackOnVideoStream(ghWndCap, fpVideoCallback);

 

    // Register the frame callback function using the

    // capSetCallbackOnFrame1XXSBC5 macro.

    capSetCallbackOnFrame(ghWndCap, fpFrameCallback);

 

    // Connect to a capture driver

 

    break;

}

case WM_CLOSE:

// Use the capSetCallbackOnFrame1XXSBC5 macro to

// disable the frame callback. Similar calls exist for the other

// callback functions.

 

    capSetCallbackOnFrame(hWndC, NULL);

 

    break;

}